<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="utf-8">
	<link rel="shortcut icon" type="image/png" href="../assets/img/favicon.ico">

	<link rel="stylesheet" href="../assets/lib/cssgrids.css">
	<link rel="stylesheet" href="../assets/css/main.css" id="site_styles">

	<script src="../assets/lib/yui-min.js"></script>
	<script src="../assets/js/api-prettify.js"></script>
	<script src="../assets/js/api-filter.js"></script>
	<script src="../assets/js/api-list.js"></script>
	<script src="../assets/js/api-search.js"></script>
	<script src="../assets/js/api-docs.js"></script>

	<title>nunuStudio ShaderUtils</title>
</head>
<body class="yui3-skin-sam">
	<div id="doc">
		<div id="hd" class="yui3-g header">
			<div class="yui3-u-3-4">
					<h1><a href="../index.html"><img src="../assets/img/logo.png" title=""></a></h1>
			</div>
		</div>
		<div id="bd" class="yui3-g">
			<div class="yui3-u-1-4">
				<div id="docs-sidebar" class="sidebar">
					<div id="api-list">
						<h2 class="off-left">APIs</h2>
						<div id="api-tabview" class="tabview">
							<div id="api-tabview-filter">
								<input type="search" id="api-filter" placeholder="Type to filter APIs">
							</div>
							<ul class="tabs">
								<li><a href="#api-classes">Classes</a></li>
								<li><a href="#api-modules">Modules</a></li>
							</ul>
							<div id="api-tabview-panel">
								<ul id="api-classes" class="apis classes">
									<li><a href="../classes/AfterimagePass.html">AfterimagePass</a></li>
									<li><a href="../classes/AmbientLight.html">AmbientLight</a></li>
									<li><a href="../classes/AnimationMixer.html">AnimationMixer</a></li>
									<li><a href="../classes/AnimationTimer.html">AnimationTimer</a></li>
									<li><a href="../classes/App.html">App</a></li>
									<li><a href="../classes/ARHandler.html">ARHandler</a></li>
									<li><a href="../classes/ArraybufferUtils.html">ArraybufferUtils</a></li>
									<li><a href="../classes/Audio.html">Audio</a></li>
									<li><a href="../classes/AudioEmitter.html">AudioEmitter</a></li>
									<li><a href="../classes/AudioLoader.html">AudioLoader</a></li>
									<li><a href="../classes/Base64Utils.html">Base64Utils</a></li>
									<li><a href="../classes/BaseNode.html">BaseNode</a></li>
									<li><a href="../classes/BillboardGroup.html">BillboardGroup</a></li>
									<li><a href="../classes/BloomPass.html">BloomPass</a></li>
									<li><a href="../classes/BokehPass.html">BokehPass</a></li>
									<li><a href="../classes/BufferUtils.html">BufferUtils</a></li>
									<li><a href="../classes/ByteArrayUtils.html">ByteArrayUtils</a></li>
									<li><a href="../classes/CanvasSprite.html">CanvasSprite</a></li>
									<li><a href="../classes/CanvasTexture.html">CanvasTexture</a></li>
									<li><a href="../classes/CapsuleBufferGeometry.html">CapsuleBufferGeometry</a></li>
									<li><a href="../classes/ColorifyPass.html">ColorifyPass</a></li>
									<li><a href="../classes/CompressedTexture.html">CompressedTexture</a></li>
									<li><a href="../classes/CopyPass.html">CopyPass</a></li>
									<li><a href="../classes/CSS3DObject.html">CSS3DObject</a></li>
									<li><a href="../classes/CSS3DRenderer.html">CSS3DRenderer</a></li>
									<li><a href="../classes/CSS3DSprite.html">CSS3DSprite</a></li>
									<li><a href="../classes/CubeCamera.html">CubeCamera</a></li>
									<li><a href="../classes/CubeTexture.html">CubeTexture</a></li>
									<li><a href="../classes/DataTexture.html">DataTexture</a></li>
									<li><a href="../classes/DirectionalLight.html">DirectionalLight</a></li>
									<li><a href="../classes/DirectionalLightCSM.html">DirectionalLightCSM</a></li>
									<li><a href="../classes/DotScreenPass.html">DotScreenPass</a></li>
									<li><a href="../classes/EffectComposer.html">EffectComposer</a></li>
									<li><a href="../classes/EventManager.html">EventManager</a></li>
									<li><a href="../classes/FileSystem.html">FileSystem</a></li>
									<li><a href="../classes/FilmPass.html">FilmPass</a></li>
									<li><a href="../classes/FirstPersonControls.html">FirstPersonControls</a></li>
									<li><a href="../classes/Fog.html">Fog</a></li>
									<li><a href="../classes/Font.html">Font</a></li>
									<li><a href="../classes/FontLoader.html">FontLoader</a></li>
									<li><a href="../classes/FXAAPass.html">FXAAPass</a></li>
									<li><a href="../classes/Gamepad.html">Gamepad</a></li>
									<li><a href="../classes/GeometryLoader.html">GeometryLoader</a></li>
									<li><a href="../classes/Group.html">Group</a></li>
									<li><a href="../classes/Gyroscope.html">Gyroscope</a></li>
									<li><a href="../classes/HemisphereLight.html">HemisphereLight</a></li>
									<li><a href="../classes/HTMLView.html">HTMLView</a></li>
									<li><a href="../classes/HueSaturationPass.html">HueSaturationPass</a></li>
									<li><a href="../classes/Image.html">Image</a></li>
									<li><a href="../classes/ImageLoader.html">ImageLoader</a></li>
									<li><a href="../classes/InstancedMesh.html">InstancedMesh</a></li>
									<li><a href="../classes/Key.html">Key</a></li>
									<li><a href="../classes/Keyboard.html">Keyboard</a></li>
									<li><a href="../classes/LegacyGeometryLoader.html">LegacyGeometryLoader</a></li>
									<li><a href="../classes/LensFlare.html">LensFlare</a></li>
									<li><a href="../classes/LightProbe.html">LightProbe</a></li>
									<li><a href="../classes/LocalStorage.html">LocalStorage</a></li>
									<li><a href="../classes/Material.html">Material</a></li>
									<li><a href="../classes/MaterialLoader.html">MaterialLoader</a></li>
									<li><a href="../classes/MathUtils.html">MathUtils</a></li>
									<li><a href="../classes/Mesh.html">Mesh</a></li>
									<li><a href="../classes/Model.html">Model</a></li>
									<li><a href="../classes/Mouse.html">Mouse</a></li>
									<li><a href="../classes/NodeScript.html">NodeScript</a></li>
									<li><a href="../classes/Nunu.html">Nunu</a></li>
									<li><a href="../classes/Object3D.html">Object3D</a></li>
									<li><a href="../classes/ObjectLoader.html">ObjectLoader</a></li>
									<li><a href="../classes/ObjectUtils.html">ObjectUtils</a></li>
									<li><a href="../classes/OperationNode.html">OperationNode</a></li>
									<li><a href="../classes/OrbitControls.html">OrbitControls</a></li>
									<li><a href="../classes/OrthographicCamera.html">OrthographicCamera</a></li>
									<li><a href="../classes/ParametricBufferGeometry.html">ParametricBufferGeometry</a></li>
									<li><a href="../classes/ParticleDistributions.html">ParticleDistributions</a></li>
									<li><a href="../classes/ParticleEmitter.html">ParticleEmitter</a></li>
									<li><a href="../classes/ParticleEmitterControl.html">ParticleEmitterControl</a></li>
									<li><a href="../classes/ParticleEmitterControlOptions.html">ParticleEmitterControlOptions</a></li>
									<li><a href="../classes/ParticleGroup.html">ParticleGroup</a></li>
									<li><a href="../classes/Pass.html">Pass</a></li>
									<li><a href="../classes/PerspectiveCamera.html">PerspectiveCamera</a></li>
									<li><a href="../classes/PhysicsGenerator.html">PhysicsGenerator</a></li>
									<li><a href="../classes/PhysicsObject.html">PhysicsObject</a></li>
									<li><a href="../classes/PointLight.html">PointLight</a></li>
									<li><a href="../classes/PositionalAudio.html">PositionalAudio</a></li>
									<li><a href="../classes/Program.html">Program</a></li>
									<li><a href="../classes/PythonScript.html">PythonScript</a></li>
									<li><a href="../classes/RectAreaLight.html">RectAreaLight</a></li>
									<li><a href="../classes/RendererConfiguration.html">RendererConfiguration</a></li>
									<li><a href="../classes/RendererState.html">RendererState</a></li>
									<li><a href="../classes/RenderPass.html">RenderPass</a></li>
									<li><a href="../classes/Resource.html">Resource</a></li>
									<li><a href="../classes/ResourceManager.html">ResourceManager</a></li>
									<li><a href="../classes/RoundedBoxBufferGeometry.html">RoundedBoxBufferGeometry</a></li>
									<li><a href="../classes/Scene.html">Scene</a></li>
									<li><a href="../classes/Script.html">Script</a></li>
									<li><a href="../classes/ShaderAttribute.html">ShaderAttribute</a></li>
									<li><a href="../classes/ShaderPass.html">ShaderPass</a></li>
									<li><a href="../classes/ShaderUtils.html">ShaderUtils</a></li>
									<li><a href="../classes/SimplexNoise.html">SimplexNoise</a></li>
									<li><a href="../classes/Skeleton.html">Skeleton</a></li>
									<li><a href="../classes/SkinnedMesh.html">SkinnedMesh</a></li>
									<li><a href="../classes/Sky.html">Sky</a></li>
									<li><a href="../classes/SobelPass.html">SobelPass</a></li>
									<li><a href="../classes/SpineAnimation.html">SpineAnimation</a></li>
									<li><a href="../classes/SpineTexture.html">SpineTexture</a></li>
									<li><a href="../classes/SpotLight.html">SpotLight</a></li>
									<li><a href="../classes/Sprite.html">Sprite</a></li>
									<li><a href="../classes/SpriteSheetTexture.html">SpriteSheetTexture</a></li>
									<li><a href="../classes/SSAONOHPass.html">SSAONOHPass</a></li>
									<li><a href="../classes/SSAOPass.html">SSAOPass</a></li>
									<li><a href="../classes/SSAOShader.html">SSAOShader</a></li>
									<li><a href="../classes/TargetConfig.html">TargetConfig</a></li>
									<li><a href="../classes/TechnicolorPass.html">TechnicolorPass</a></li>
									<li><a href="../classes/TerrainBufferGeometry.html">TerrainBufferGeometry</a></li>
									<li><a href="../classes/TextBitmap.html">TextBitmap</a></li>
									<li><a href="../classes/TextFile.html">TextFile</a></li>
									<li><a href="../classes/TextMesh.html">TextMesh</a></li>
									<li><a href="../classes/TextSprite.html">TextSprite</a></li>
									<li><a href="../classes/Texture.html">Texture</a></li>
									<li><a href="../classes/TextureLoader.html">TextureLoader</a></li>
									<li><a href="../classes/Timer.html">Timer</a></li>
									<li><a href="../classes/TizenKeyboard.html">TizenKeyboard</a></li>
									<li><a href="../classes/Tree.html">Tree</a></li>
									<li><a href="../classes/TreeUtils.html">TreeUtils</a></li>
									<li><a href="../classes/TwistModifier.html">TwistModifier</a></li>
									<li><a href="../classes/TypedArrayHelper.html">TypedArrayHelper</a></li>
									<li><a href="../classes/UnitConverter.html">UnitConverter</a></li>
									<li><a href="../classes/UnrealBloomPass.html">UnrealBloomPass</a></li>
									<li><a href="../classes/Video.html">Video</a></li>
									<li><a href="../classes/VideoLoader.html">VideoLoader</a></li>
									<li><a href="../classes/VideoStream.html">VideoStream</a></li>
									<li><a href="../classes/VideoTexture.html">VideoTexture</a></li>
									<li><a href="../classes/Viewport.html">Viewport</a></li>
									<li><a href="../classes/VRHandler.html">VRHandler</a></li>
									<li><a href="../classes/WebcamTexture.html">WebcamTexture</a></li>
									<li><a href="../classes/WorkerPool.html">WorkerPool</a></li>
									<li><a href="../classes/WorkerTask.html">WorkerTask</a></li>
									<li><a href="../classes/{Object} ParticleGroupOptions.html">{Object} ParticleGroupOptions</a></li>
								</ul>
					
								<ul id="api-modules" class="apis modules">
									<li><a href="../modules/Animation.html">Animation</a></li>
									<li><a href="../modules/Animations.html">Animations</a></li>
									<li><a href="../modules/Audio.html">Audio</a></li>
									<li><a href="../modules/BinaryUtils.html">BinaryUtils</a></li>
									<li><a href="../modules/Cameras.html">Cameras</a></li>
									<li><a href="../modules/Controls.html">Controls</a></li>
									<li><a href="../modules/Core.html">Core</a></li>
									<li><a href="../modules/Files.html">Files</a></li>
									<li><a href="../modules/Input.html">Input</a></li>
									<li><a href="../modules/Lights.html">Lights</a></li>
									<li><a href="../modules/Loaders.html">Loaders</a></li>
									<li><a href="../modules/Meshes.html">Meshes</a></li>
									<li><a href="../modules/Misc.html">Misc</a></li>
									<li><a href="../modules/Particles.html">Particles</a></li>
									<li><a href="../modules/Physics.html">Physics</a></li>
									<li><a href="../modules/Postprocessing.html">Postprocessing</a></li>
									<li><a href="../modules/Resources.html">Resources</a></li>
									<li><a href="../modules/Runtime.html">Runtime</a></li>
									<li><a href="../modules/Script.html">Script</a></li>
									<li><a href="../modules/Sprite.html">Sprite</a></li>
									<li><a href="../modules/Textures.html">Textures</a></li>
									<li><a href="../modules/THREE.html">THREE</a></li>
									<li><a href="../modules/Utils.html">Utils</a></li>
								</ul>
							</div>
						</div>
					</div>
				</div>
			</div>
			<div class="yui3-u-3-4">
				<!--<div id="api-options">
					Show:
					<label for="api-show-inherited">
						<input type="checkbox" id="api-show-inherited" checked>
						Inherited
					</label>
					<label for="api-show-protected">
						<input type="checkbox" id="api-show-protected">
						Protected
					</label>
					<label for="api-show-private">
						<input type="checkbox" id="api-show-private">
						Private
					</label>
					<label for="api-show-deprecated">
						<input type="checkbox" id="api-show-deprecated">
						Deprecated
					</label>
				</div>-->				<div class="apidocs">
					<div id="docs-main">
						<div class="content">
							<h1>ShaderUtils Class</h1>
							<div class="box meta">
							
							
							
										Module: <a href="../modules/Lights.html">Lights</a>
							
							</div>
							
							
							<div class="box intro">
								<p>A bunch of utility functions used throughout the library.</p>
							
							</div>
							
							
							<div id="classdocs" class="tabview">
								<ul class="api-class-tabs">
									<li class="api-class-tab index"><a href="#index">Index</a></li>
							
										<li class="api-class-tab methods"><a href="#methods">Methods</a></li>
										<li class="api-class-tab attrs"><a href="#attrs">Attributes</a></li>
								</ul>
							
								<div>
									<div id="index" class="api-class-tabpanel index">
										<h2 class="off-left">Item Index</h2>
							
											<div class="index-section methods">
												<h3>Methods</h3>
							
												<ul class="index-list methods">
														<li class="index-item method">
															<a href="#method_ensureTypedArg">ensureTypedArg</a>
							
														</li>
												</ul>
											</div>
							
							
											<div class="index-section attrs">
												<h3>Attributes</h3>
							
												<ul class="index-list attrs">
														<li class="index-item attr">
															<a href="#attr_arrayValuesAreEqual">arrayValuesAreEqual</a>
														</li>
														<li class="index-item attr">
															<a href="#attr_clamp">clamp</a>
														</li>
														<li class="index-item attr">
															<a href="#attr_ensureArrayInstanceOf">ensureArrayInstanceOf</a>
														</li>
														<li class="index-item attr">
															<a href="#attr_ensureArrayTypedArg">ensureArrayTypedArg</a>
														</li>
														<li class="index-item attr">
															<a href="#attr_ensureInstanceOf">ensureInstanceOf</a>
														</li>
														<li class="index-item attr">
															<a href="#attr_ensureValueOverLifetimeCompliance">ensureValueOverLifetimeCompliance</a>
														</li>
														<li class="index-item attr">
															<a href="#attr_getPackedRotationAxis">getPackedRotationAxis</a>
														</li>
														<li class="index-item attr">
															<a href="#attr_interpolateArray">interpolateArray</a>
														</li>
														<li class="index-item attr">
															<a href="#attr_lerp">lerp</a>
														</li>
														<li class="index-item attr">
															<a href="#attr_lerpTypeAgnostic">lerpTypeAgnostic</a>
														</li>
														<li class="index-item attr">
															<a href="#attr_randomColor">randomColor</a>
														</li>
														<li class="index-item attr">
															<a href="#attr_randomColorAsHex">randomColorAsHex</a>
														</li>
														<li class="index-item attr">
															<a href="#attr_randomDirectionVector3OnDisc">randomDirectionVector3OnDisc</a>
														</li>
														<li class="index-item attr">
															<a href="#attr_randomDirectionVector3OnSphere">randomDirectionVector3OnSphere</a>
														</li>
														<li class="index-item attr">
															<a href="#attr_randomFloat">randomFloat</a>
														</li>
														<li class="index-item attr">
															<a href="#attr_randomVector3">randomVector3</a>
														</li>
														<li class="index-item attr">
															<a href="#attr_randomVector3OnDisc">randomVector3OnDisc</a>
														</li>
														<li class="index-item attr">
															<a href="#attr_randomVector3OnSphere">randomVector3OnSphere</a>
														</li>
														<li class="index-item attr">
															<a href="#attr_roundToNearestMultiple">roundToNearestMultiple</a>
														</li>
														<li class="index-item attr">
															<a href="#attr_types">types</a>
														</li>
														<li class="index-item attr">
															<a href="#attr_zeroToEpsilon">zeroToEpsilon</a>
														</li>
												</ul>
											</div>
							
									</div>
							
										<div id="methods" class="api-class-tabpanel">
											<h2 class="off-left">Methods</h2>
							
												<div id="method_ensureTypedArg" class="method item">
													<h3 class="name"><code>ensureTypedArg</code></h3>
												
														<div class="args">
															<span class="paren">(</span><ul class="args-list inline commas">
																<li class="arg">
																		<code>arg</code>
																</li>
																<li class="arg">
																		<code>type</code>
																</li>
																<li class="arg">
																		<code>defaultValue</code>
																</li>
															</ul><span class="paren">)</span>
														</div>
												
														<span class="returns-inline">
															<span class="type">(boolean | String | Number | Object)</span>
														</span>
												
												
												
												
												
												
												
													<div class="meta">
																<p>
														</p>
												
												
												
													</div>
												
													<div class="description">
														<p>Given a value, a type, and a default value to fallback to, ensure the given argument adheres to the type requesting, returning the default value if type check is false.</p>
												
													</div>
												
														<div class="params">
															<h4>Parameters:</h4>
												
															<ul class="params-list">
																<li class="param">
																		<code class="param-name">arg</code>
																		<span class="type">(boolean | String | Number | Object)</span>
												
												
																	<div class="param-description">
																		<p>The value to perform a type-check on.</p>
												
																	</div>
												
																</li>
																<li class="param">
																		<code class="param-name">type</code>
																		<span class="type">String</span>
												
												
																	<div class="param-description">
																		<p>The type the arg argument should adhere to.</p>
												
																	</div>
												
																</li>
																<li class="param">
																		<code class="param-name">defaultValue</code>
																		<span class="type">(boolean | String | Number | Object)</span>
												
												
																	<div class="param-description">
																		<p>A default value to fallback on if the type check fails.</p>
												
																	</div>
												
																</li>
															</ul>
														</div>
												
														<div class="returns">
															<h4>Returns:</h4>
												
															<div class="returns-description">
																		<span class="type">(boolean | String | Number | Object)</span>:
																	<p>The given value if type check passes, or the default value if it fails.</p>
												
															</div>
														</div>
												
												</div>
										</div>
							
							
										<div id="attrs" class="api-class-tabpanel">
											<h2 class="off-left">Attributes</h2>
							
												<div id="attr_arrayValuesAreEqual" class="attr item">
													<a name="config_arrayValuesAreEqual"></a> 
													<h3 class="name"><code>arrayValuesAreEqual</code></h3>
													<span class="type"></span>
												
												
												
												
														<span class="flag static">static</span>
												
												
												
												
													<div class="meta">
																<p>
														</p>
												
												
													</div>
												
													<div class="description">
														<p>Check if all items in an array are equal. Uses strict equality.</p>
												
													</div>
												
												
												
												</div>
												<div id="attr_clamp" class="attr item">
													<a name="config_clamp"></a> 
													<h3 class="name"><code>clamp</code></h3>
													<span class="type"></span>
												
												
												
												
														<span class="flag static">static</span>
												
												
												
												
													<div class="meta">
																<p>
														</p>
												
												
													</div>
												
													<div class="description">
														<p>Clamp a number to between the given min and max values.</p>
												
													</div>
												
												
												
												</div>
												<div id="attr_ensureArrayInstanceOf" class="attr item">
													<a name="config_ensureArrayInstanceOf"></a> 
													<h3 class="name"><code>ensureArrayInstanceOf</code></h3>
													<span class="type"></span>
												
												
												
												
														<span class="flag static">static</span>
												
												
												
												
													<div class="meta">
																<p>
														</p>
												
												
													</div>
												
													<div class="description">
														<p>Given an array of values, ensure the instances of all items in the array matches the given instance constructor falling back to a default value if the check fails.</p>
												<p>If given value isn't an Array, delegates to ShaderUtils.ensureInstanceOf.</p>
												
													</div>
												
												
												
												</div>
												<div id="attr_ensureArrayTypedArg" class="attr item">
													<a name="config_ensureArrayTypedArg"></a> 
													<h3 class="name"><code>ensureArrayTypedArg</code></h3>
													<span class="type"></span>
												
												
												
												
														<span class="flag static">static</span>
												
												
												
												
													<div class="meta">
																<p>
														</p>
												
												
													</div>
												
													<div class="description">
														<p>Given an array of values, a type, and a default value, ensure the given array&quot;s contents ALL adhere to the provided type, returning the default value if type check fails.</p>
												<p>If the given value to check isn't an Array, delegates to ShaderUtils.ensureTypedArg.</p>
												
													</div>
												
												
												
												</div>
												<div id="attr_ensureInstanceOf" class="attr item">
													<a name="config_ensureInstanceOf"></a> 
													<h3 class="name"><code>ensureInstanceOf</code></h3>
													<span class="type"></span>
												
												
												
												
														<span class="flag static">static</span>
												
												
												
												
													<div class="meta">
																<p>
														</p>
												
												
													</div>
												
													<div class="description">
														<p>Ensures the given value is an instance of a constructor function.</p>
												
													</div>
												
												
												
												</div>
												<div id="attr_ensureValueOverLifetimeCompliance" class="attr item">
													<a name="config_ensureValueOverLifetimeCompliance"></a> 
													<h3 class="name"><code>ensureValueOverLifetimeCompliance</code></h3>
													<span class="type"></span>
												
												
												
												
														<span class="flag static">static</span>
												
												
												
												
													<div class="meta">
																<p>
														</p>
												
												
													</div>
												
													<div class="description">
														<p>Ensures that any &quot;value-over-lifetime&quot; properties of an emitter are of the correct length (as dictated by valueOverLifetimeLength).</p>
												<p>Delegates to ShaderUtils.interpolateArray for array resizing.</p>
												<p>If properties aren't arrays, then property values are put into one.</p>
												
													</div>
												
												
												
												</div>
												<div id="attr_getPackedRotationAxis" class="attr item">
													<a name="config_getPackedRotationAxis"></a> 
													<h3 class="name"><code>getPackedRotationAxis</code></h3>
													<span class="type"></span>
												
												
												
												
														<span class="flag static">static</span>
												
												
												
												
													<div class="meta">
																<p>
														</p>
												
												
													</div>
												
													<div class="description">
														<p>Given a rotation axis, and a rotation axis spread vector, calculate a randomised rotation axis, and pack it into a hexadecimal value represented in decimal form.</p>
												
													</div>
												
												
												
												</div>
												<div id="attr_interpolateArray" class="attr item">
													<a name="config_interpolateArray"></a> 
													<h3 class="name"><code>interpolateArray</code></h3>
													<span class="type"></span>
												
												
												
												
														<span class="flag static">static</span>
												
												
												
												
													<div class="meta">
																<p>
														</p>
												
												
													</div>
												
													<div class="description">
														<p>Performs linear interpolation (lerp) on an array.</p>
												<p>For example, lerping [1, 10], with a newLength of 10 will produce [1, 2, 3, 4, 5, 6, 7, 8, 9, 10].</p>
												<p>Delegates to ShaderUtils.lerpTypeAgnostic to perform the actual interpolation.</p>
												
													</div>
												
												
												
												</div>
												<div id="attr_lerp" class="attr item">
													<a name="config_lerp"></a> 
													<h3 class="name"><code>lerp</code></h3>
													<span class="type"></span>
												
												
												
												
														<span class="flag static">static</span>
												
												
												
												
													<div class="meta">
																<p>
														</p>
												
												
													</div>
												
													<div class="description">
														<p>Perform a linear interpolation operation on two numbers.</p>
												
													</div>
												
												
												
												</div>
												<div id="attr_lerpTypeAgnostic" class="attr item">
													<a name="config_lerpTypeAgnostic"></a> 
													<h3 class="name"><code>lerpTypeAgnostic</code></h3>
													<span class="type"></span>
												
												
												
												
														<span class="flag static">static</span>
												
												
												
												
													<div class="meta">
																<p>
														</p>
												
												
													</div>
												
													<div class="description">
														<p>Linearly interpolates two values of various types. The given values must be of the same type for the interpolation to work.</p>
												
													</div>
												
												
												
												</div>
												<div id="attr_randomColor" class="attr item">
													<a name="config_randomColor"></a> 
													<h3 class="name"><code>randomColor</code></h3>
													<span class="type"></span>
												
												
												
												
														<span class="flag static">static</span>
												
												
												
												
													<div class="meta">
																<p>
														</p>
												
												
													</div>
												
													<div class="description">
														<p>Given an Shader attribute instance, and various other settings, assign Color values to the attribute.</p>
												
													</div>
												
												
												
												</div>
												<div id="attr_randomColorAsHex" class="attr item">
													<a name="config_randomColorAsHex"></a> 
													<h3 class="name"><code>randomColorAsHex</code></h3>
													<span class="type"></span>
												
												
												
												
														<span class="flag static">static</span>
												
												
												
												
													<div class="meta">
																<p>
														</p>
												
												
													</div>
												
													<div class="description">
														<p>Assigns a random color value, encoded as a hex value in decimal format, to a ShaderAttribute instance.</p>
												
													</div>
												
												
												
												</div>
												<div id="attr_randomDirectionVector3OnDisc" class="attr item">
													<a name="config_randomDirectionVector3OnDisc"></a> 
													<h3 class="name"><code>randomDirectionVector3OnDisc</code></h3>
													<span class="type"></span>
												
												
												
												
														<span class="flag static">static</span>
												
												
												
												
													<div class="meta">
																<p>
														</p>
												
												
													</div>
												
													<div class="description">
														<p>Given an ShaderAttribute instance, create a direction vector from the given position, using speed as the magnitude. Values are saved to the attribute.</p>
												
													</div>
												
												
												
												</div>
												<div id="attr_randomDirectionVector3OnSphere" class="attr item">
													<a name="config_randomDirectionVector3OnSphere"></a> 
													<h3 class="name"><code>randomDirectionVector3OnSphere</code></h3>
													<span class="type"></span>
												
												
												
												
														<span class="flag static">static</span>
												
												
												
												
													<div class="meta">
																<p>
														</p>
												
												
													</div>
												
													<div class="description">
														<p>Given an ShaderAttribute instance, create a direction vector from the given
												position, using speed as the magnitude. Values are saved to the attribute.</p>
												
													</div>
												
												
												
												</div>
												<div id="attr_randomFloat" class="attr item">
													<a name="config_randomFloat"></a> 
													<h3 class="name"><code>randomFloat</code></h3>
													<span class="type"></span>
												
												
												
												
														<span class="flag static">static</span>
												
												
												
												
													<div class="meta">
																<p>
														</p>
												
												
													</div>
												
													<div class="description">
														<p>Given a start value and a spread value, create and return a random number.</p>
												
													</div>
												
												
												
												</div>
												<div id="attr_randomVector3" class="attr item">
													<a name="config_randomVector3"></a> 
													<h3 class="name"><code>randomVector3</code></h3>
													<span class="type"></span>
												
												
												
												
														<span class="flag static">static</span>
												
												
												
												
													<div class="meta">
																<p>
														</p>
												
												
													</div>
												
													<div class="description">
														<p>Given an ShaderAttribute instance, and various other settings, assign values to the attribute&quot;s array in a vec3 format.</p>
												
													</div>
												
												
												
												</div>
												<div id="attr_randomVector3OnDisc" class="attr item">
													<a name="config_randomVector3OnDisc"></a> 
													<h3 class="name"><code>randomVector3OnDisc</code></h3>
													<span class="type"></span>
												
												
												
												
														<span class="flag static">static</span>
												
												
												
												
													<div class="meta">
																<p>
														</p>
												
												
													</div>
												
													<div class="description">
														<p>Assigns a random vector 3 value to an ShaderAttribute instance, projecting the given values onto a 2d-disc.</p>
												
													</div>
												
												
												
												</div>
												<div id="attr_randomVector3OnSphere" class="attr item">
													<a name="config_randomVector3OnSphere"></a> 
													<h3 class="name"><code>randomVector3OnSphere</code></h3>
													<span class="type"></span>
												
												
												
												
														<span class="flag static">static</span>
												
												
												
												
													<div class="meta">
																<p>
														</p>
												
												
													</div>
												
													<div class="description">
														<p>Assigns a random vector 3 value to an ShaderAttribute instance, projecting the given values onto a sphere.</p>
												
													</div>
												
												
												
												</div>
												<div id="attr_roundToNearestMultiple" class="attr item">
													<a name="config_roundToNearestMultiple"></a> 
													<h3 class="name"><code>roundToNearestMultiple</code></h3>
													<span class="type"></span>
												
												
												
												
														<span class="flag static">static</span>
												
												
												
												
													<div class="meta">
																<p>
														</p>
												
												
													</div>
												
													<div class="description">
														<p>Rounds a number to a nearest multiple.</p>
												
													</div>
												
												
												
												</div>
												<div id="attr_types" class="attr item">
													<a name="config_types"></a> 
													<h3 class="name"><code>types</code></h3>
													<span class="type">Object</span>
												
												
												
												
														<span class="flag static">static</span>
												
												
												
												
													<div class="meta">
																<p>
														</p>
												
												
													</div>
												
													<div class="description">
														<p>A map of types used by ShaderUtils.ensureTypedArg and ShaderUtils.ensureArrayTypedArg to compare types against.</p>
												
													</div>
												
												
												
												</div>
												<div id="attr_zeroToEpsilon" class="attr item">
													<a name="config_zeroToEpsilon"></a> 
													<h3 class="name"><code>zeroToEpsilon</code></h3>
													<span class="type"></span>
												
												
												
												
														<span class="flag static">static</span>
												
												
												
												
													<div class="meta">
																<p>
														</p>
												
												
													</div>
												
													<div class="description">
														<p>If the given value is less than the epsilon value, then return a randomised epsilon value if specified, or just the epsilon value if not.</p>
												<p>Works for negative numbers as well as positive.</p>
												
													</div>
												
												
												
												</div>
										</div>
							
								</div>
							</div>
						</div>
					</div>
				</div>
			</div>
		</div>
	</div>
</body>
</html>
